﻿using RemoteSensingImageDirectServer.Models.Request.Listener;
using RemoteSensingImageDirectServer.Models.Request.Response;
using RemoteSensingImageDirectServer.Untils.ScopeSpace;
using RemoteSensingImageDirectServer.Untils.Source;

namespace RemoteSensingImageDirectServer.Service.OGC.RasterMap
{

    public interface IRasterSourceTile
    {
        /// <summary>
        /// 从数据源获取瓦片
        /// </summary>
        /// <param name="source">数据源</param>
        /// <param name="imageListener">请求参数</param>
        /// <param name="tileEnvelope">请求范围</param>
        /// <param name="imageXSize">瓦片宽度</param>
        /// <param name="imageYSize">瓦片高度</param>
        /// <param name="resultCallback">结果传递回调结构体</param>
        /// <returns>服务结果</returns>
        ServiceResult GetRasterTile(IRSIMapSource source, IImageListener imageListener,
            RasterEnvelope tileEnvelope,
            int imageXSize, int imageYSize,
            ServiceResult? resultCallback = null);
    }
}
